<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>
</head>
<body>

<script type="text/javascript">
	//其他类型转数字类型
	//1.parseInt()  转整数
	console.log(parseInt("10"))	//10
	console.log(parseInt("10.99"))//10	
	console.log(parseInt("10adgsgadss"))//10	
	console.log(parseInt("adgs10"))//NaN
	console.log(parseInt("10.99adgsga"))//10

	//2.parseFloat() 转小数
	console.log(parseFloat("9")) //9
	console.log(parseFloat("8.88")) //8.88
	console.log(parseFloat("8.88agasg")) //8.88
	console.log(parseFloat("agdagsdg8.88")) //NaN

	//3.Number() 转数字
	/*
		字符串：
				纯数字，转换为对应数字
				不是纯数字，转为NaN
				字符串空格  0
		布尔值：	
				true ：1 flase:0
		null  : 0
		undefined:NaN

	*/

	console.log(Number("9")) //9
	console.log(Number("10sdg"))//NaN
	console.log(Number('')) //0
	console.log(Number('  ')) //0
	console.log(Number(true)) //1
	console.log(Number(false)) //0
	console.log(Number(null)) //0
	console.log(Number(undefined)) //NaN

	//转整数用parseInt,转小数parseFloat
	//转数字要求比较严格用Number

	//其他类型转字符串
	//1. 变量.toString() 可以转进制 除了null和undefined会报错，其余都可以转
	let s1 = 100
	console.log(s1.toString()) //100
	//转二进制
	console.log(s1.toString(2))
	//转八进制
	console.log(s1.toString(8))
	//转十六进制
	console.log(s1.toString(16))

	console.log(true.toString()) //true
	// console.log(null.toString()) //报错
	// console.log(undefined.toString())//报错

	//2.String() 所有的数据类型都能转字符串 不能转进制
	console.log(String(s1))
	console.log(String(null)) //null
	console.log(String(undefined)) //undefined
	console.log(String(false)) //false

	//其他类型转布尔类型
	//Boolean
	/*
		数字类型：0 和NaN是false
		字符串 ：空字符串是false
		undefined和null :flase

	*/

	console.log(Boolean(1)) //true
	console.log(Boolean(0)) //false
	console.log(Boolean("1")) //true
	console.log(Boolean("-1")) //true
	console.log(Boolean("0")) //true
	console.log(Boolean('')) //false
	console.log(Boolean('   ')) //true
	console.log(Boolean(null)) //false
	console.log(Boolean(undefined)) //false
	console.log(Boolean(NaN)) //false






</script>
</body>
</html>